package com.dragon.modules.yuegou.query.park;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dragon.modules.yuegou.entity.park.StatisticsEntity;
import com.dragon.modules.yuegou.mybatis.Condition;
import com.dragon.modules.yuegou.mybatis.Query;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonUnwrapped;

import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
 * 停车统计信息表 动态查询条件
 *
 * @author pbuilder generated
 * @date 2020-03-20 15:40:25
 * @version 2.0
 */
@JsonInclude(Include.NON_NULL)
public class StatisticsQuery extends StatisticsEntity implements Query<StatisticsEntity> {

	/** 第三方ID查询条件 */
	@JsonUnwrapped(prefix = "thirdId")
	private Condition<String> thirdIdCondition;

	/** 商圈ID查询条件 */
	@JsonUnwrapped(prefix = "busdId")
	private Condition<String> busdIdCondition;

	/** 会员ID查询条件 */
	@JsonUnwrapped(prefix = "memberId")
	private Condition<String> memberIdCondition;

	/** 商户id查询条件 */
	@JsonUnwrapped(prefix = "merchantId")
	private Condition<String> merchantIdCondition;

	/** 车牌号查询条件 */
	@JsonUnwrapped(prefix = "plateNumber")
	private Condition<String> plateNumberCondition;

	/** 停车场名称查询条件 */
	@JsonUnwrapped(prefix = "parkingName")
	private Condition<String> parkingNameCondition;

	/** 停车场ID查询条件 */
	@JsonUnwrapped(prefix = "parkingId")
	private Condition<String> parkingIdCondition;

	/** 入场时间查询条件 */
	@JsonUnwrapped(prefix = "entranceTime")
	private Condition<LocalDateTime> entranceTimeCondition;

	/** 出场时间查询条件 */
	@JsonUnwrapped(prefix = "exitTime")
	private Condition<LocalDateTime> exitTimeCondition;

	/** 停留时间(以秒为单位计算)查询条件 */
	@JsonUnwrapped(prefix = "stayedTime")
	private Condition<Long> stayedTimeCondition;

	/** 总停车费查询条件 */
	@JsonUnwrapped(prefix = "parkingFee")
	private Condition<BigDecimal> parkingFeeCondition;

	/** 已缴停车费查询条件 */
	@JsonUnwrapped(prefix = "paidFee")
	private Condition<BigDecimal> paidFeeCondition;

	/** 是否收费：0-不收费；1-收费查询条件 */
	@JsonUnwrapped(prefix = "toll")
	private Condition<Boolean> tollCondition;

	/** 创建时间查询条件 */
	@JsonUnwrapped(prefix = "createdTime")
	private Condition<LocalDateTime> createdTimeCondition;

	/**
	 * 构造一个查询条件对象
	 */
	public StatisticsQuery() {
		super();
	}

	/**
	 * 依据实体对象构造一个查询条件对象
	 *
	 * @param entity 实体对象
	 */
	public StatisticsQuery(StatisticsEntity entity) {
		super(entity);
	}

	/**
	 * 依据其它查询条件对象的信息构造一个查询条件对象
	 *
	 * @param other 查询条件对象
	 */
	public StatisticsQuery(StatisticsQuery other) {
		super(other);
		if(other.thirdIdCondition != null) {
			this.thirdIdCondition = other.thirdIdCondition.copy();
		}
		if(other.busdIdCondition != null) {
			this.busdIdCondition = other.busdIdCondition.copy();
		}
		if(other.memberIdCondition != null) {
			this.memberIdCondition = other.memberIdCondition.copy();
		}
		if(other.merchantIdCondition != null) {
			this.merchantIdCondition = other.merchantIdCondition.copy();
		}
		if(other.plateNumberCondition != null) {
			this.plateNumberCondition = other.plateNumberCondition.copy();
		}
		if(other.parkingNameCondition != null) {
			this.parkingNameCondition = other.parkingNameCondition.copy();
		}
		if(other.parkingIdCondition != null) {
			this.parkingIdCondition = other.parkingIdCondition.copy();
		}
		if(other.entranceTimeCondition != null) {
			this.entranceTimeCondition = other.entranceTimeCondition.copy();
		}
		if(other.exitTimeCondition != null) {
			this.exitTimeCondition = other.exitTimeCondition.copy();
		}
		if(other.stayedTimeCondition != null) {
			this.stayedTimeCondition = other.stayedTimeCondition.copy();
		}
		if(other.parkingFeeCondition != null) {
			this.parkingFeeCondition = other.parkingFeeCondition.copy();
		}
		if(other.paidFeeCondition != null) {
			this.paidFeeCondition = other.paidFeeCondition.copy();
		}
		if(other.tollCondition != null) {
			this.tollCondition = other.tollCondition.copy();
		}
		if(other.createdTimeCondition != null) {
			this.createdTimeCondition = other.createdTimeCondition.copy();
		}
	}

	@Override
	public QueryWrapper<StatisticsEntity> toQueryWrapper() {
		QueryWrapper<StatisticsEntity> wrapper = new QueryWrapper<>(this);
		if (thirdIdCondition != null) {
			thirdIdCondition.toWrapper(wrapper, COL_THIRD_ID);
		}
		if (busdIdCondition != null) {
			busdIdCondition.toWrapper(wrapper, COL_BUSD_ID);
		}
		if (memberIdCondition != null) {
			memberIdCondition.toWrapper(wrapper, COL_MEMBER_ID);
		}
		if (merchantIdCondition != null) {
			merchantIdCondition.toWrapper(wrapper, COL_MERCHANT_ID);
		}
		if (plateNumberCondition != null) {
			plateNumberCondition.toWrapper(wrapper, COL_PLATE_NUMBER);
		}
		if (parkingNameCondition != null) {
			parkingNameCondition.toWrapper(wrapper, COL_PARKING_NAME);
		}
		if (parkingIdCondition != null) {
			parkingIdCondition.toWrapper(wrapper, COL_PARKING_ID);
		}
		if (entranceTimeCondition != null) {
			entranceTimeCondition.toWrapper(wrapper, COL_ENTRANCE_TIME);
		}
		if (exitTimeCondition != null) {
			exitTimeCondition.toWrapper(wrapper, COL_EXIT_TIME);
		}
		if (stayedTimeCondition != null) {
			stayedTimeCondition.toWrapper(wrapper, COL_STAYED_TIME);
		}
		if (parkingFeeCondition != null) {
			parkingFeeCondition.toWrapper(wrapper, COL_PARKING_FEE);
		}
		if (paidFeeCondition != null) {
			paidFeeCondition.toWrapper(wrapper, COL_PAID_FEE);
		}
		if (tollCondition != null) {
			tollCondition.toWrapper(wrapper, COL_TOLL);
		}
		if (createdTimeCondition != null) {
			createdTimeCondition.toWrapper(wrapper, COL_CREATED_TIME);
		}
		return wrapper;
	}

	/**
	 * 构造并返回第三方ID查询条件
	 *
	 * @return thirdIdCondition 第三方ID查询条件
	 */
	public Condition<String> thirdId() {
		this.thirdIdCondition = new Condition<>();
		return this.thirdIdCondition;
	}

	/**
	 * 获取第三方ID查询条件
	 *
	 * @return thirdIdCondition 第三方ID查询条件
	 */
	public Condition<String> getThirdIdCondition() {
		return thirdIdCondition;
	}

	/**
	 * 设置第三方ID查询条件
	 *
	 * @param thirdIdCondition 第三方ID查询条件
	 */
	public void setThirdIdCondition(Condition<String> thirdIdCondition) {
		this.thirdIdCondition = thirdIdCondition;
	}

	/**
	 * 构造并返回商圈ID查询条件
	 *
	 * @return busdIdCondition 商圈ID查询条件
	 */
	public Condition<String> busdId() {
		this.busdIdCondition = new Condition<>();
		return this.busdIdCondition;
	}

	/**
	 * 获取商圈ID查询条件
	 *
	 * @return busdIdCondition 商圈ID查询条件
	 */
	public Condition<String> getBusdIdCondition() {
		return busdIdCondition;
	}

	/**
	 * 设置商圈ID查询条件
	 *
	 * @param busdIdCondition 商圈ID查询条件
	 */
	public void setBusdIdCondition(Condition<String> busdIdCondition) {
		this.busdIdCondition = busdIdCondition;
	}

	/**
	 * 构造并返回会员ID查询条件
	 *
	 * @return memberIdCondition 会员ID查询条件
	 */
	public Condition<String> memberId() {
		this.memberIdCondition = new Condition<>();
		return this.memberIdCondition;
	}

	/**
	 * 获取会员ID查询条件
	 *
	 * @return memberIdCondition 会员ID查询条件
	 */
	public Condition<String> getMemberIdCondition() {
		return memberIdCondition;
	}

	/**
	 * 设置会员ID查询条件
	 *
	 * @param memberIdCondition 会员ID查询条件
	 */
	public void setMemberIdCondition(Condition<String> memberIdCondition) {
		this.memberIdCondition = memberIdCondition;
	}

	/**
	 * 构造并返回商户id查询条件
	 *
	 * @return merchantIdCondition 商户id查询条件
	 */
	public Condition<String> merchantId() {
		this.merchantIdCondition = new Condition<>();
		return this.merchantIdCondition;
	}

	/**
	 * 获取商户id查询条件
	 *
	 * @return merchantIdCondition 商户id查询条件
	 */
	public Condition<String> getMerchantIdCondition() {
		return merchantIdCondition;
	}

	/**
	 * 设置商户id查询条件
	 *
	 * @param merchantIdCondition 商户id查询条件
	 */
	public void setMerchantIdCondition(Condition<String> merchantIdCondition) {
		this.merchantIdCondition = merchantIdCondition;
	}

	/**
	 * 构造并返回车牌号查询条件
	 *
	 * @return plateNumberCondition 车牌号查询条件
	 */
	public Condition<String> plateNumber() {
		this.plateNumberCondition = new Condition<>();
		return this.plateNumberCondition;
	}

	/**
	 * 获取车牌号查询条件
	 *
	 * @return plateNumberCondition 车牌号查询条件
	 */
	public Condition<String> getPlateNumberCondition() {
		return plateNumberCondition;
	}

	/**
	 * 设置车牌号查询条件
	 *
	 * @param plateNumberCondition 车牌号查询条件
	 */
	public void setPlateNumberCondition(Condition<String> plateNumberCondition) {
		this.plateNumberCondition = plateNumberCondition;
	}

	/**
	 * 构造并返回停车场名称查询条件
	 *
	 * @return parkingNameCondition 停车场名称查询条件
	 */
	public Condition<String> parkingName() {
		this.parkingNameCondition = new Condition<>();
		return this.parkingNameCondition;
	}

	/**
	 * 获取停车场名称查询条件
	 *
	 * @return parkingNameCondition 停车场名称查询条件
	 */
	public Condition<String> getParkingNameCondition() {
		return parkingNameCondition;
	}

	/**
	 * 设置停车场名称查询条件
	 *
	 * @param parkingNameCondition 停车场名称查询条件
	 */
	public void setParkingNameCondition(Condition<String> parkingNameCondition) {
		this.parkingNameCondition = parkingNameCondition;
	}

	/**
	 * 构造并返回停车场ID查询条件
	 *
	 * @return parkingIdCondition 停车场ID查询条件
	 */
	public Condition<String> parkingId() {
		this.parkingIdCondition = new Condition<>();
		return this.parkingIdCondition;
	}

	/**
	 * 获取停车场ID查询条件
	 *
	 * @return parkingIdCondition 停车场ID查询条件
	 */
	public Condition<String> getParkingIdCondition() {
		return parkingIdCondition;
	}

	/**
	 * 设置停车场ID查询条件
	 *
	 * @param parkingIdCondition 停车场ID查询条件
	 */
	public void setParkingIdCondition(Condition<String> parkingIdCondition) {
		this.parkingIdCondition = parkingIdCondition;
	}

	/**
	 * 构造并返回入场时间查询条件
	 *
	 * @return entranceTimeCondition 入场时间查询条件
	 */
	public Condition<LocalDateTime> entranceTime() {
		this.entranceTimeCondition = new Condition<>();
		return this.entranceTimeCondition;
	}

	/**
	 * 获取入场时间查询条件
	 *
	 * @return entranceTimeCondition 入场时间查询条件
	 */
	public Condition<LocalDateTime> getEntranceTimeCondition() {
		return entranceTimeCondition;
	}

	/**
	 * 设置入场时间查询条件
	 *
	 * @param entranceTimeCondition 入场时间查询条件
	 */
	public void setEntranceTimeCondition(Condition<LocalDateTime> entranceTimeCondition) {
		this.entranceTimeCondition = entranceTimeCondition;
	}

	/**
	 * 构造并返回出场时间查询条件
	 *
	 * @return exitTimeCondition 出场时间查询条件
	 */
	public Condition<LocalDateTime> exitTime() {
		this.exitTimeCondition = new Condition<>();
		return this.exitTimeCondition;
	}

	/**
	 * 获取出场时间查询条件
	 *
	 * @return exitTimeCondition 出场时间查询条件
	 */
	public Condition<LocalDateTime> getExitTimeCondition() {
		return exitTimeCondition;
	}

	/**
	 * 设置出场时间查询条件
	 *
	 * @param exitTimeCondition 出场时间查询条件
	 */
	public void setExitTimeCondition(Condition<LocalDateTime> exitTimeCondition) {
		this.exitTimeCondition = exitTimeCondition;
	}

	/**
	 * 构造并返回停留时间(以秒为单位计算)查询条件
	 *
	 * @return stayedTimeCondition 停留时间(以秒为单位计算)查询条件
	 */
	public Condition<Long> stayedTime() {
		this.stayedTimeCondition = new Condition<>();
		return this.stayedTimeCondition;
	}

	/**
	 * 获取停留时间(以秒为单位计算)查询条件
	 *
	 * @return stayedTimeCondition 停留时间(以秒为单位计算)查询条件
	 */
	public Condition<Long> getStayedTimeCondition() {
		return stayedTimeCondition;
	}

	/**
	 * 设置停留时间(以秒为单位计算)查询条件
	 *
	 * @param stayedTimeCondition 停留时间(以秒为单位计算)查询条件
	 */
	public void setStayedTimeCondition(Condition<Long> stayedTimeCondition) {
		this.stayedTimeCondition = stayedTimeCondition;
	}

	/**
	 * 构造并返回总停车费查询条件
	 *
	 * @return parkingFeeCondition 总停车费查询条件
	 */
	public Condition<BigDecimal> parkingFee() {
		this.parkingFeeCondition = new Condition<>();
		return this.parkingFeeCondition;
	}

	/**
	 * 获取总停车费查询条件
	 *
	 * @return parkingFeeCondition 总停车费查询条件
	 */
	public Condition<BigDecimal> getParkingFeeCondition() {
		return parkingFeeCondition;
	}

	/**
	 * 设置总停车费查询条件
	 *
	 * @param parkingFeeCondition 总停车费查询条件
	 */
	public void setParkingFeeCondition(Condition<BigDecimal> parkingFeeCondition) {
		this.parkingFeeCondition = parkingFeeCondition;
	}

	/**
	 * 构造并返回已缴停车费查询条件
	 *
	 * @return paidFeeCondition 已缴停车费查询条件
	 */
	public Condition<BigDecimal> paidFee() {
		this.paidFeeCondition = new Condition<>();
		return this.paidFeeCondition;
	}

	/**
	 * 获取已缴停车费查询条件
	 *
	 * @return paidFeeCondition 已缴停车费查询条件
	 */
	public Condition<BigDecimal> getPaidFeeCondition() {
		return paidFeeCondition;
	}

	/**
	 * 设置已缴停车费查询条件
	 *
	 * @param paidFeeCondition 已缴停车费查询条件
	 */
	public void setPaidFeeCondition(Condition<BigDecimal> paidFeeCondition) {
		this.paidFeeCondition = paidFeeCondition;
	}

	/**
	 * 构造并返回是否收费：0-不收费；1-收费查询条件
	 *
	 * @return tollCondition 是否收费：0-不收费；1-收费查询条件
	 */
	public Condition<Boolean> toll() {
		this.tollCondition = new Condition<>();
		return this.tollCondition;
	}

	/**
	 * 获取是否收费：0-不收费；1-收费查询条件
	 *
	 * @return tollCondition 是否收费：0-不收费；1-收费查询条件
	 */
	public Condition<Boolean> getTollCondition() {
		return tollCondition;
	}

	/**
	 * 设置是否收费：0-不收费；1-收费查询条件
	 *
	 * @param tollCondition 是否收费：0-不收费；1-收费查询条件
	 */
	public void setTollCondition(Condition<Boolean> tollCondition) {
		this.tollCondition = tollCondition;
	}

	/**
	 * 构造并返回创建时间查询条件
	 *
	 * @return createdTimeCondition 创建时间查询条件
	 */
	public Condition<LocalDateTime> createdTime() {
		this.createdTimeCondition = new Condition<>();
		return this.createdTimeCondition;
	}

	/**
	 * 获取创建时间查询条件
	 *
	 * @return createdTimeCondition 创建时间查询条件
	 */
	public Condition<LocalDateTime> getCreatedTimeCondition() {
		return createdTimeCondition;
	}

	/**
	 * 设置创建时间查询条件
	 *
	 * @param createdTimeCondition 创建时间查询条件
	 */
	public void setCreatedTimeCondition(Condition<LocalDateTime> createdTimeCondition) {
		this.createdTimeCondition = createdTimeCondition;
	}

}
